package com.guijianpan.framework.util;

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;


/**
 * 缓存工具类（使用hibernate的EhCache）
 * @author yzChen  2015-5-13 14:53:13
 */
public class CacheUtil {
	
	/** Spring管理的cacheManager */
	private static CacheManager cacheManager = (CacheManager) SpringContextUtil.getBean("ehCacheManager");
	
	/** 本系统环境缓存对象名称 */
	private static final String GJP_CONTEXT_CACHE = "gjp_context_cache";
	
	/** 本系统环境缓存对象 */
	private static Cache cache = null;
	
	/**
	 * 初始化本系统环境缓存对象
	 */
	static {
		cacheManager.addCache(GJP_CONTEXT_CACHE);
		cache = cacheManager.getCache(GJP_CONTEXT_CACHE);
	}
	
	/**
	 * 添加到缓存
	 * @param key
	 * @param value
	 * @param time
	 */
	public static void put(Object key, Object value) {
		cache.put(new Element(key, value));
	}
	
	/**
	 * 获取缓存值
	 * @param key
	 */
	public static Object get(Object key) {
		return null == cache.get(key) ? null : cache.get(key).getObjectValue();
	}
	
	/**
	 * 删除缓存值
	 * @param key
	 */
	public static boolean remove(Object key) {
		return cache.remove(key);
	}
	
}
